package com.hellpro.lolbox.video.model;

import android.content.Context;
import android.os.Handler;
import android.os.Message;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hellpro.lolbox.utils.OkHttpClientUtils;
import com.hellpro.lolbox.video.bean.VideoHotBean;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;


/**
 * 类描述:
 * 创建人:阿犇
 * 创建时间:2016/10/20
 * 备注:VIdeo的热门界面获取数据的方法
 */

public class LoadVideoHotInfo {

    private String mUrl;
    private Handler mHandler;
    private Context mContext;

    public LoadVideoHotInfo(String url, Context context, Handler handler) {
        this.mUrl = url;
        this.mHandler = handler;
        this.mContext = context;
    }

    /**
     * 类描述:
     * 创建人:阿犇
     * 创建时间:2016/10/19
     * 备注:分类导航下载并解析数据
     */

    public void startLoadHotInfo() {
        new Thread() {
            @Override
            public void run() {
                super.run();
                try {
                    String json = OkHttpClientUtils.getStringFromURL(mContext, mUrl, null);
                    JSONObject jsonObject = new JSONObject(json);
                    JSONArray array = jsonObject.getJSONArray("data");
                    //定义一个集合，解析的数据已集合的方式传递
                    List<VideoHotBean> mList = new ArrayList<>();
                    for (int i = 0; i < array.length(); i++) {
                        JSONObject Object = array.getJSONObject(i);
                        String objectStr = Object.toString();
                        //使用gson进行数据解析
                        Gson gson = new Gson();
                        Type type = TypeToken.get(VideoHotBean.class).getType();
                        VideoHotBean bean = gson.fromJson(objectStr, type);
                        mList.add(bean);
                    }
                    //使用handler进行传值
                    Message msg = Message.obtain();
                    msg.what = 2;
                    msg.obj = mList;
                    mHandler.sendMessage(msg);
                } catch (IOException | JSONException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
}
